﻿#if NETFX
using Color = System.Windows.Media.Color;
#elif NETFX_CORE || WINDOWS_PHONE
using Color = Windows.UI.Color;
#endif

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;



namespace NicoView.Model.Service.Comments
{

    public static class NicoCommentColrs
    {
        public static readonly INicoCommentColor White = new NicoCommentColorWhite();

        public static readonly INicoCommentColor Red = new NicoCommentColorRed();

        public static readonly INicoCommentColor Pink = new NicoCommentColorRed();

        public static readonly INicoCommentColor Orange = new NicoCommentColorOrange();

        public static readonly INicoCommentColor Yellow = new NicoCommentColorYellow();

        public static readonly INicoCommentColor Green = new NicoCommentColorGreen();


        public static readonly INicoCommentColor Cyan = new NicoCommentColorCyan();

        public static readonly INicoCommentColor Blue = new NicoCommentColorBlue();

        public static readonly INicoCommentColor Purple = new NicoCommentColorPurple();

        public static readonly INicoCommentColor Black = new NicoCommentColorBlack();

        public static readonly INicoCommentColor White2 = new NicoCommentColorWhite2();

        public static readonly INicoCommentColor Red2 = new NicoCommentColorRed2();

        public static readonly INicoCommentColor Pink2 = new NicoCommentColorPink2();

        public static readonly INicoCommentColor Orange2 = new NicoCommentColorOrange2();

        public static readonly INicoCommentColor Yellow2 = new NicoCommentColorYellow2();

        public static readonly INicoCommentColor Green2 = new NicoCommentColorGreen2();

        public static readonly INicoCommentColor Cyan2 = new NicoCommentColorCyan2();

        public static readonly INicoCommentColor Blue2 = new NicoCommentColorBlue2();

        public static readonly INicoCommentColor Purple2 = new NicoCommentColorPurple2();

        public static readonly INicoCommentColor Black2 = new NicoCommentColorBlack2();

    }

    //一般会員色

    public sealed class NicoCommentColorWhite:NicoCommentGeneralColorBase
    {
        
        internal NicoCommentColorWhite() : base("white", Color.FromArgb(0xff,0xff, 0xff, 0xff), true) { }
    }

    public sealed class NicoCommentColorRed : NicoCommentGeneralColorBase
    {
        internal NicoCommentColorRed() : base("red", Color.FromArgb(0xff,0xff, 0x00, 0x00), false) { }
    }

    public sealed class NicoCommentColorPink : NicoCommentGeneralColorBase
    {
        internal NicoCommentColorPink() : base("pink", Color.FromArgb(0xff,0xff, 0x80, 0x80), false) { }
    }


    public sealed class NicoCommentColorOrange : NicoCommentGeneralColorBase
    {
        internal NicoCommentColorOrange() : base("orange", Color.FromArgb(0xff,0xff, 0xc0, 0x00), false) { }
    }

    public sealed class NicoCommentColorYellow : NicoCommentGeneralColorBase
    {
        internal NicoCommentColorYellow() : base("yellow", Color.FromArgb(0xff,0xff, 0xff, 0x00), false) { }
    }

    public sealed class NicoCommentColorGreen : NicoCommentGeneralColorBase
    {
        internal NicoCommentColorGreen() : base("green", Color.FromArgb(0xff,0x00, 0xff, 0x00), false) { }
    }

    public sealed class NicoCommentColorCyan : NicoCommentGeneralColorBase
    {
        internal NicoCommentColorCyan() : base("cyan", Color.FromArgb(0xff,0x00, 0xff, 0xff), false) { }
    }

    public sealed class NicoCommentColorBlue : NicoCommentGeneralColorBase
    {
        internal NicoCommentColorBlue() : base("blue", Color.FromArgb(0xff,0x00, 0x00, 0xff), false) { }
    }

    public sealed class NicoCommentColorPurple : NicoCommentGeneralColorBase
    {
        internal NicoCommentColorPurple() : base("purple", Color.FromArgb(0xff,0xc0, 0x00, 0xff), false) { }
    }

    public sealed class NicoCommentColorBlack : NicoCommentGeneralColorBase
    {
        internal NicoCommentColorBlack() : base("black", Color.FromArgb(0xff,0x00, 0x00, 0x00), false) { }
    }




    //プレミアム会員色

    public sealed class NicoCommentColorWhite2 : NicoCommentPremiumColorBase
    {
        internal NicoCommentColorWhite2() : base("white2", Color.FromArgb(0xff,0xcc, 0xcc, 0x99), false) { }
    }

    public sealed class NicoCommentColorRed2 : NicoCommentPremiumColorBase
    {
        internal NicoCommentColorRed2() : base("red2", Color.FromArgb(0xff,0xcc, 0x00, 0x33), false) { }
    }

    public sealed class NicoCommentColorPink2 : NicoCommentPremiumColorBase
    {
        internal NicoCommentColorPink2() : base("pink2", Color.FromArgb(0xff,0xff, 0x33, 0xcc), false) { }
    }

    public sealed class NicoCommentColorOrange2 : NicoCommentPremiumColorBase
    {
        internal NicoCommentColorOrange2() : base("orange2", Color.FromArgb(0xff,0xff, 0x66, 0x00), false) { }
    }

    public sealed class NicoCommentColorYellow2 : NicoCommentPremiumColorBase
    {
        internal NicoCommentColorYellow2() : base("yellow2", Color.FromArgb(0xff,0x99, 0x99, 0x00), false) { }
    }

    public sealed class NicoCommentColorGreen2 : NicoCommentPremiumColorBase
    {
        internal NicoCommentColorGreen2() : base("green2", Color.FromArgb(0xff,0x00, 0xcc, 0x66), false) { }
    }

    public sealed class NicoCommentColorCyan2 : NicoCommentPremiumColorBase
    {
        internal NicoCommentColorCyan2() : base("cyan2", Color.FromArgb(0xff,0x00, 0xcc, 0xcc), false) { }
    }

    public sealed class NicoCommentColorBlue2 : NicoCommentPremiumColorBase
    {
        internal NicoCommentColorBlue2() : base("blue2", Color.FromArgb(0xff,0x33, 0x99, 0xff), false) { }
    }

    public sealed class NicoCommentColorPurple2 : NicoCommentPremiumColorBase
    {
        internal NicoCommentColorPurple2() : base("purple2", Color.FromArgb(0xff,0x66, 0x33, 0xcc), false) { }
    }

    public sealed class NicoCommentColorBlack2 : NicoCommentPremiumColorBase
    {
        internal NicoCommentColorBlack2() : base("black2", Color.FromArgb(0xff,0x66, 0x66, 0x66), false) { }
    }



}
